home *** CD-ROM | disk | FTP | other *** search
/ PCMania 30 / PCMania CD30.iso / postumum / pcapsys / cargacut.pas < prev    next >
Pascal/Delphi Source File  |  1994-11-16  |  2KB  |  78 lines

  1.   (*                 Ejemplo codificado por :                 *)
  2.   (*                    Francesc Casanovas                    *)
  3.   (*             Ripness / Postumum    (c) - 1.994            *)
  4.   (*                  en Turbo Pascal v6.0                    *)
  5.  
  6.  
  7. Program CargaCut;
  8.  
  9. Uses Crt,Dos,CapSys;
  10.  
  11. Type
  12.        Paleta        = Array [0..255,0..2] Of Byte;
  13.  
  14. Var
  15.     Regs                : Registers;
  16.     cont                : Word;
  17.     c                   : Char;
  18.     Pantalla            : Pointer;
  19.     Paleta1             : Paleta;
  20.     Imagen              : String;
  21.     Panta               : File;
  22.     long                : LongInt;
  23.  
  24. Procedure Carga_Pantalla (fichero  : String );
  25.  
  26.   Var A : Byte;
  27.  
  28.  Begin
  29.   Assign (Panta,Fichero);       { Abrimos el fichero para leer }
  30.   Reset (Panta,1);
  31.   Regs.ax := $13;               { Activamos el modo 320x200x256 }
  32.   Intr ($10,Regs);
  33.   BlockRead(Panta,Paleta1,768); { Leemos los primeros 768 bytes del fichero}
  34.   Regs.Ax := $1012;             { que corresponden a la paleta  }
  35.   Regs.Bx := 0;
  36.   Regs.Cx := 256;
  37.   Regs.Es := Seg (Paleta1);
  38.   Regs.Dx := Ofs (Paleta1);
  39.   Intr ($10,Regs);                { Activamos la paleta }
  40.   long := (FileSize (Panta)-768);
  41.   Fillchar (Pantalla^,64000,0);
  42.   BlockRead (Panta,Pantalla^,Long); { Leemos lo que queda de imagen despues }
  43.                                     { de la paleta y lo volcamos al puntero }
  44.   Close (Panta);                    { Cerramos el fichero }
  45.   Move (Pantalla,Mem[$A000:0],long); { Volcamos el puntero a memoria de video }
  46.   C := ReadKey;
  47.  End;
  48.  
  49.  
  50. { *********************    MAIN   *******************************  }
  51.  
  52.  
  53. Begin
  54.   Cursoroff;            { Desconectamos el cursor  }
  55.   If ParamCount < 1 Then
  56.    Begin
  57.     WriteLn;
  58.     WriteLN ('Error, faltan parametros.... Uso VerPan < nombre de fichero > ');
  59.     CursorOn;
  60.     Halt;
  61.    End;
  62.   Imagen := ParamStr(1);
  63.     if (Pos ('.', imagen) = 0) then
  64.   Imagen := Concat (imagen, '.cut');
  65.   If Not Exist (Imagen) Then
  66.   Begin
  67.      WriteLn;
  68.      WriteLn (' Fichero no existente ');
  69.      CursorOn;
  70.      Halt;
  71.   End;
  72.   GetMem (Pantalla,64000);
  73.   Carga_pantalla (Imagen);
  74.   TextMode (CO80);
  75.   CursorOn;
  76.   FreeMem (pantalla,64000);
  77. End.
  78.